package entity;

import java.io.Serializable;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;

@Entity
@Table
public class Contato implements Serializable{

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column
    private int id_contato;
    @Column
    private String nome;
    @Column
    private String telefone_principal;
    @Column
    private String telefone_auxiliar;
    @Column
    private String fax;
    @Column
    private String email;
    @OneToOne(targetEntity=Status.class)    
    private Status status;
    //private Unidade unidade;

    public String getEmail() {
        return email;
    }
    
    public void setStatus(Status status) {
        this.status = status;
    }

    public Status getStatus() {
        return status;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public int getId_contato() {
        return id_contato;
    }

    public void setId_contato(int id_contato) {
        this.id_contato = id_contato;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getTelefone_celular() {
        return telefone_auxiliar;
    }

    public void setTelefone_celular(String telefone_celular) {
        this.telefone_auxiliar = telefone_celular;
    }

    public String getTelefone_fax() {
        return fax;
    }

    public void setTelefone_fax(String telefone_fax) {
        this.fax = telefone_fax;
    }

    public String getTelefone_principal() {
        return telefone_principal;
    }

    public void setTelefone_principal(String telefone_principal) {
        this.telefone_principal = telefone_principal;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Contato other = (Contato) obj;
        if (this.id_contato != other.id_contato) {
            return false;
        }
        if ((this.nome == null) ? (other.nome != null) : !this.nome.equals(other.nome)) {
            return false;
        }
        if ((this.telefone_principal == null) ? (other.telefone_principal != null) : !this.telefone_principal.equals(other.telefone_principal)) {
            return false;
        }
        if ((this.telefone_auxiliar == null) ? (other.telefone_auxiliar != null) : !this.telefone_auxiliar.equals(other.telefone_auxiliar)) {
            return false;
        }
        if ((this.fax == null) ? (other.fax != null) : !this.fax.equals(other.fax)) {
            return false;
        }
        if ((this.email == null) ? (other.email != null) : !this.email.equals(other.email)) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 3;
        hash = 37 * hash + this.id_contato;
        hash = 37 * hash + (this.nome != null ? this.nome.hashCode() : 0);
        hash = 37 * hash + (this.telefone_principal != null ? this.telefone_principal.hashCode() : 0);
        hash = 37 * hash + (this.telefone_auxiliar != null ? this.telefone_auxiliar.hashCode() : 0);
        hash = 37 * hash + (this.fax != null ? this.fax.hashCode() : 0);
        hash = 37 * hash + (this.email != null ? this.email.hashCode() : 0);
        return hash;
    }

    @Override
    public String toString() {
        return "Contato{" + "id_contato=" + id_contato + "nome=" + nome + "telefone_principal=" + telefone_principal + "telefone_celular=" + telefone_auxiliar + "telefone_fax=" + fax + "email=" + email + '}';
    }
}
